Crate peepmatic_traits[][src]

Shared traits, types, and macros for Peepmatic.

This crate is used both at build time when constructing peephole optimizers (i.e. in the peepmatic crate), and at run time when using pre-built peephole optimizers (i.e. in the peepmatic-runtime crate and in Cranelift's Peepmatic integration at cranelift/codegen/src/peepmatic.rs).

This crate is similar to a header file: it should generally only contain trait/type/macro definitions, not any code.

Macros

define_operator

Define an operator type, as well as its parsing and typing rules.

define_parse_and_typing_rules_for_operator

Define both a wast::parser::Parse implementation and a peepmatic_traits::TypingRules implementation for the given operator type.

define_parse_impl_for_operator

Define a wast::parser::Parse implementation for an operator type.

define_typing_rules_impl_for_operator

Define a peepmatic_traits::TypingRules implementation for the given operator type.

Traits

TypingContext

A trait to represent a typing context.

TypingRules

The typing rules for a TOperator type.

Functions

unsupported

Raise a panic about an unsupported operation.